<?php
	/**
	 * Arquivo: bancos.inc
	 * @package Default
	 * @sub-package BANCOS
	 * @page-level 1
	 */
	/**
	 * Classe de Conexão com a base de dados
	 * @package Default
	 * @return void 
	 */
   class BANCOS
	  	{
	  	/**
		 * Link da conexão
		 * @access private
		 * @var mixed|null
		 */
		private $link;
		/**
		 * Comando SQL a ser executado na base de dados
		 * @access private
		 * @var string
		 */
    	private $query;
    	/**
		 * Link de resultados
		 * @access private
		 * @var mixed|null
		 */
		private $result;
		/**
		 * Usuário de banco de dados
		 * @access private
		 * @var string
		 */
		private $user;
		/**
		 * Nome da base de dados
		 * @access private
		 * @var string
		 */
		private $dbname;
		/**
		 * Caminho do servidor da base de dados
		 * @access private
		 * @var string
		 */
		private $hostname;
		/**
		 * Dados de retorno
		 * @access public
		 * @var mixed[]
		 */
		public $retorno;
		/**
		 * Número de registros retornados
		 * @access public
		 * @var integer
		 */
		public $num_registros;
		/**
		 * Número de colunas retornadas
		 * @access public
		 * @var integer
		 */
		public $num_colunas;
		/**
		 * Identificação do tipo do SGBD
		 * @access public
		 * @var integer
		 */
		public $tipo_banco;
		/**
		 * Mensagem de retorno do SGBD
		 * @access public
		 * @var string
		 */
		public $msn_sistema;
		/**
		 * Construtor da classe BANCO
		 *
		 * @param integer $banco tipo do SGBD
		 * @param string $user nome do usuário da base de dados
		 * @param string $dbname nome da base de dados
		 * @param string $hostname caminho de acesso a base de dados
		 * @param string $password senha do usuário da base de dados
		 *
		 * @return void
		 */
		//public function __construct($banco=1,$user="alcione",$dbname="alcione_qualify",$hostname="localhost",$password="4lc10n3&f3rr31r4")
		public function __construct($banco=1,$user="alcione_ctpst",$dbname="alcione_ctpst",$hostname="localhost",$password="4lc10n3&")
		//public function __construct($banco=1,$user="qualitcd",$dbname="qualitcd_controle",$hostname="localhost",$password="767854")
		//public function __construct($banco=1,$user="iegran",$dbname="iegran",$hostname="pgsql.iegran.com.br",$password="3duc4r&")
			{
			$this->tipo_banco = $banco;
			$this->user=$user;
			$this->dbname=$dbname;
			$this->hostname=$hostname;
			switch ($this->tipo_banco)
			  {
				case 1:
				  {
				  	if (strcmp($this->hostname, "localhost"))
				  		{
				  		$this->link = pg_connect("host=".$this->hostname." user=".$this->user." dbname=".$this->dbname." password=".$password." ");	
				  		}
				  	else 
				  		{
						$this->link = pg_connect("user=".$this->user." dbname=".$this->dbname." password=".$password);
						}
					//echo ("Conectado ao Banco $this->tipo_banco");
					break;
					}
				case 2:
				  {
					$this->link = mysql_connect($this->hostname,$this->user,$password);
					mysql_select_db($this->dbname);
					break;
					}
				}
			}
		/**
		 * Metódo de execução de comandos SQL na base de dados
		 *
		 * @param string $query_ex comando SQL a ser executado
		 */
		public function exec_query($query_ex)
		  {
			$this->query = $query_ex;
			$this->retorno = array();
//			echo ($this->query);
//			echo ($this->tipo_banco);
			switch ($this->tipo_banco)
			  {
				case 1:
				  {
					$this->result = pg_query($this->link,$this->query);
					if ($this->result)
					  {
						$this->retorno[0][0] = true;
						$this->num_registros = pg_num_rows($this->result);
						$this->retorno[0][1] = $this->num_registros;
						$this->num_colunas = pg_num_fields($this->result);
						$x = 0;
						for ($i=0; $i < $this->num_registros; $i++)
						  {
							$this->retorno[1][$x] = pg_fetch_row($this->result,$i);
							$x++;
							}
						}
					else
					  {
						$this->retorno[0] = false;
						$this->msg_sistema = pg_result_error($this->link);
						}
					break;
					}
				case 2:
				  {
					$this->result = mysql_query($this->query,$this->link);
					if ($this->result)
					  {
						$this->retorno[0][0] = true;
						$this->num_registros = mysql_num_rows($this->result);
						$this->retorno[0][1] = $this->num_registros;
						$this->num_colunas = mysql_num_fields($this->result);
						$x=0;
						for ($i=0; $i < $this->num_registros; $i++)
						  {
							$this->retorno[1][$x] = mysql_fetch_row($this->result);
							$x++;
							}
						}
					else
					  {
						$this->retorno[0] = false;
						}
					break;
					}
				}
			}			
		/**
		 * Destrutor da Classe BANCO
		 */
		public function __destruct()
			{
			switch ($this->tipo_banco)
			  {
				case 1:
				  {
					pg_close($this->link);
					//echo ("Desconectado ao Banco $this->tipo_banco");
					break;
					}
				case 2:
				  {
					mysql_close($this->link);
					break;
					}
				}
			}
		};//BANCO
?>